home *** CD-ROM | disk | FTP | other *** search
/ Visual Cafe 3 / Visual Cafe 3.ISO / Vcafe / Main.bin / Signer.java < prev    next >
Text File  |  1998-09-22  |  3KB  |  125 lines

  1. /*
  2.  * @(#)Signer.java    1.24 98/07/01
  3.  *
  4.  * Copyright 1995-1998 by Sun Microsystems, Inc.,
  5.  * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
  6.  * All rights reserved.
  7.  * 
  8.  * This software is the confidential and proprietary information
  9.  * of Sun Microsystems, Inc. ("Confidential Information").  You
  10.  * shall not disclose such Confidential Information and shall use
  11.  * it only in accordance with the terms of the license agreement
  12.  * you entered into with Sun.
  13.  */
  14.  
  15. package java.security;
  16.  
  17. import java.io.*;
  18.  
  19. /**
  20.  * This class is used to represent an Identity that can also digitally
  21.  * sign data.
  22.  *
  23.  * <p>The management of a signer's private keys is an important and
  24.  * sensitive issue that should be handled by subclasses as appropriate
  25.  * to their intended use.
  26.  *
  27.  * @see Identity
  28.  *
  29.  * @version     1.22, 01/31/97
  30.  * @author Benjamin Renaud 
  31.  */
  32. public abstract class Signer extends Identity {
  33.  
  34.     private PrivateKey privateKey;
  35.  
  36.     /** 
  37.      * Creates a signer. This constructor should only be used for 
  38.      * serialization. 
  39.      */      
  40.     protected Signer() {
  41.     super();
  42.     }
  43.  
  44.  
  45.     /** 
  46.      * Creates a signer with the specified identity name.
  47.      * 
  48.      * @param name the identity name.   
  49.      */
  50.     public Signer(String name) {
  51.     super(name);
  52.     }
  53.     
  54.     /** 
  55.      * Creates a signer with the specified identity name and scope.
  56.      * 
  57.      * @param name the identity name.   
  58.      *
  59.      * @param scope the scope of the identity. 
  60.      * 
  61.      * @exception KeyManagementException if there is already an identity 
  62.      * with the same name in the scope.
  63.      */
  64.     public Signer(String name, IdentityScope scope)
  65.     throws KeyManagementException {
  66.     super(name, scope);
  67.     }
  68.  
  69.     /**
  70.      * Returns this signer's private key.
  71.      * 
  72.      * @return this signer's private key, or null if the private key has
  73.      * not yet been set.
  74.      */
  75.     public PrivateKey getPrivateKey() {
  76.     check("get.private.key");
  77.     return privateKey;
  78.     }
  79.  
  80.    /**
  81.      * Sets the key pair (public key and private key) for this signer.
  82.      *
  83.      * @param pair an initialized key pair.
  84.      *
  85.      * @exception InvalidParameterException if the key pair is not
  86.      * properly initialized.
  87.      * @exception KeyException if the key pair cannot be set for any
  88.      * other reason.
  89.      */
  90.     public final void setKeyPair(KeyPair pair) 
  91.     throws InvalidParameterException, KeyException {
  92.     check("set.private.keypair");
  93.     PublicKey pub = pair.getPublic();
  94.     PrivateKey priv = pair.getPrivate();
  95.  
  96.     if (pub == null || priv == null) {
  97.         throw new InvalidParameterException();
  98.     }
  99.     setPublicKey(pub);
  100.     privateKey = priv;
  101.     }
  102.  
  103.     String printKeys() {
  104.     String keys = "";
  105.     PublicKey publicKey = getPublicKey();
  106.     if (publicKey != null && privateKey != null) {
  107.         keys = "\tpublic and private keys initialized";
  108.  
  109.     } else {
  110.         keys = "\tno keys";
  111.     }
  112.     return keys;
  113.     }
  114.  
  115.     /**
  116.      * Returns a string of information about the signer.
  117.      *
  118.      * @return a string of information about the signer.
  119.      */
  120.     public String toString() {
  121.     return "[Signer]" + super.toString();
  122.     }
  123. }
  124.  
  125.